package cn.rkylin.oms.common.event;

/**
 * 事件类型
 * 
 * @author wangxiaoyi
 * @since 2017年4月13日 3:44
 */
public enum EventTypeCodeEnum {

	AFTER_USER_ADD("afterUserAdd"), // 用户添加后

	Before_ORDER_ADD("beforeOrderAdd"), // 订单下载前

	AFTER_USER_LOGIN("afterUserLogin"), // 用户登录后
	
	AFTER_RBAC_CHANGED("afterRBACChanged"), // 组织、角色、权限、菜单、授权调整的时候，（例如：受影响的用户会被消除缓存）

	AFTER_USER_REGISTER("afterUserRegister"), // 用户注册后

	AFTER_ORDER_ADD("afterOrderAdd"), // 订单下载后
	
	ORDER_RE_SPLIT("oderReSplit"), // 平台订单，重新分单事件

	AFTER_ORDER_STATUS_CHANGE("afterOrderStatusChange"), // 订单状态改变后

	AFTER_ORDER_PAYMENT("afterOderPaymentChange"), // 订单支付完成后

	AFTER_ORDER_RETURN_STAT_CHANGE("afterOrderReturnStatChange"), // 订单退货状态改变后

	AFTER_COMMENT("afterComment"), // 评论之后

	AFTER_SKU_ADD("afterSkuAdd"), // 增加SKU后

	AFTER_SKU_REMOVE("afterSkuRemove"), // 删除SKU后

	AFTER_PRODUCT_UP_OR_DOWN_ON_SALE("afterProductUpOrDownOnSale"), // 产品上下架后

	AFTER_LOGISTICS_CHANGE("afterLogisticsChange"); // 修改快递信息后

	private String code;

	private EventTypeCodeEnum(String code) {
		this.code = code;
	}

	public static EventTypeCodeEnum fromCode(String code) {
		for (EventTypeCodeEnum type : EventTypeCodeEnum.values()) {
			if (type.code.equals(code)) {
				return type;
			}
		}
		return null;
	}

	public String toCode() {
		return code;
	}
}
